﻿#pragma execution_character_set("utf-8")
#ifndef WORDENGINE_H
#define WORDENGINE_H
#include <ActiveQt/QAxObject>
#include <Windows.h>
#include <QDir>
#include <QFile>
#include <QStringList>
#include <QString>
#include <QVector>

class WordEngine
{
public:
    WordEngine(void);
    WordEngine(const QString wordFileName);
    ~WordEngine(void);

    // 打开Word文档，如果不存在就创建
    bool open(bool visible = false,bool display_Alerts = false);

    // 在书签处创建一个表格（返回一个表格对象，而不是表格集对象）
    QAxObject *insertTableIntoLabel(QString label_Name,QString table_Name,int rows,int columns);

    // 向表格单元格插入数据
    bool setTableCellString(QAxObject *table,QString cell_String,int row_Index,int column_Index);

    // 光标移动到末尾
    void cursorMoveToEnd(void);

    // 设置表格的样式
    void setTableFormat(QAxObject *table,int rows,int columns);

    // 保存
    bool save(void);

    // 另存为
    bool saveAs(QString word_FileName);

    // 关闭释放资源（对外函数）
    void close(void);
private:
    // 释放相关资源
    void release(void);
private:
    // word文件是否打开
    bool m_IsOpened;

    // word文件的绝对径文件名
    QString m_WordFileName;

    // 操作Word程序指针（Word或者WPS）
    QAxObject *m_Word;

    // word文档集对象
    QAxObject *m_Documents;

    // 当前活动的文档
    QAxObject *m_CurrentDocument;

    // 操作Word程序进程PID
    QVector<int> m_WordPID_Vec;
};

#endif // WORDENGINE_H
